<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // 高阶函数：一个函数如果参数为函数或者返回值为函数，那么这个函数就是一个高阶函数 
    function h1(callback) {
        callback && callback()
    }
    function h2() {
        return function(name){return name}
    }

    // 闭包：指有权访问另一个函数中变量的函数。简单说就是，一个作用域可以访问另一个函数内部的局部变量。
    function fn() {
        var num = 10 
        function fun() {
            console.log(num)
        }
        num++ 
        return fun 
    }
    var fun = fn() 
    fun() // 11 
    fun() // 11 证明变量num在函数fn执行完并不销毁， 一直保持，所以会有内存泄漏，慎用闭包 




</script>
</html>